Eli Zaretskii [Fri, 24 Oct 2014 13:19:21 +0000 (16:19 +0300)]
A possible fix for bug #18815 with assertion violations in bidi.c.
src/bidi.c (bidi_resolve_explicit, bidi_find_bracket_pairs)
(bidi_resolve_brackets): Use end of string position rather than ZV
when iterating over a string.
Martin Rudalics [Fri, 24 Oct 2014 09:58:43 +0000 (11:58 +0200)]
Improve mouse dragging of frame edges.
* keyboard.c (make_lispy_position): Return coordinates also when
on scroll bars, fringes, margins or not in a window.
* xdisp.c (show_mouse_face): Don't change cursor face during
mouse tracking.
* mouse.el (mouse-drag-line): Don't use mouse-pixel-position.
Calculate increment from last position instead of window edge.
Add right- and bottom-divider bindings to transient map.
Katsumi Yamaoka [Fri, 24 Oct 2014 09:29:09 +0000 (09:29 +0000)]
lisp/gnus/ChangeLog (2014-10-24): Add bug#
Katsumi Yamaoka [Fri, 24 Oct 2014 08:34:32 +0000 (08:34 +0000)]
lisp/gnus/gnus.el (gnus-mode-line-buffer-identification): Don't shadow load-path, it blocks autoloading of find-image (bug#18813)
enami tsugutomo [Fri, 24 Oct 2014 06:05:57 +0000 (06:05 +0000)]
lisp/gnus/nnimap.el (nnimap-wait-for-response): Ignore NOOP response requested to keep connection open
Stefan Monnier [Fri, 24 Oct 2014 04:09:55 +0000 (00:09 -0400)]
* lisp/cedet/semantic/complete.el: Require semantic/db-find.
Stefan Monnier [Thu, 23 Oct 2014 21:44:36 +0000 (17:44 -0400)]
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Define an internal predicate
even if :predicate was nil, for the benefit of typep.
Record the name of the predicate for typep's use.
(cl--make-type-test): Use pcase. Obey new cl-deftype-satisfies property.
Stefan Monnier [Thu, 23 Oct 2014 21:38:56 +0000 (17:38 -0400)]
* lisp/epg.el: Use cl-defstruct.
(epg-make-data-from-file, epg-make-data-from-string, epg-data-file)
(epg-data-string): Define via cl-defstruct.
(epg--gv-nreverse): New macro.
(epg-context--make): New constructor (provided vi cl-defstruct).
(epg-make-context): Rewrite using it.
(epg-context-protocol, epg-context-program)
(epg-context-home-directory, epg-context-armor, epg-context-textmode)
(epg-context-include-certs, epg-context-cipher-algorithm)
(epg-context-digest-algorithm, epg-context-compress-algorithm)
(epg-context-passphrase-callback, epg-context-progress-callback)
(epg-context-signers, epg-context-sig-notations, epg-context-process)
(epg-context-output-file, epg-context-result, epg-context-operation)
(epg-context-pinentry-mode): Define using cl-defstruct.
(epg-context-set-protocol, epg-context-set-program)
(epg-context-set-include-certs, epg-context-set-cipher-algorithm)
(epg-context-set-digest-algorithm)
(epg-context-set-sig-notations, epg-context-set-process)
(epg-context-set-output-file, epg-context-set-result)
(epg-context-set-operation, epg-context-set-pinentry-mode)
(epg-context-set-compress-algorithm): Remove. Use setf instead.
(epg-context-set-armor, epg-context-set-textmode)
(epg-context-set-signers): Redefine using setf
and declare as obsolete.
(epg-context-set-passphrase-callback)
(epg-context-set-progress-callback): Use setf.
(epg-signature-notations): Rename from epg-sig-notations.
(epg-make-signature, epg-signature-status, epg-signature-key-id)
(epg-signature-validity, epg-signature-fingerprint)
(epg-signature-creation-time, epg-signature-expiration-time)
(epg-signature-pubkey-algorithm, epg-signature-digest-algorithm)
(epg-signature-class, epg-signature-version): Define vi cl-defstruct.
(epg-signature-set-status, epg-signature-set-key-id)
(epg-signature-set-validity, epg-signature-set-fingerprint)
(epg-signature-set-creation-time, epg-signature-set-expiration-time)
(epg-signature-set-pubkey-algorithm)
(epg-signature-set-digest-algorithm, epg-signature-set-class)
(epg-signature-set-version, epg-signature-set-notations): Remove.
Use setf instead.
(epg-make-new-signature, epg-new-signature-type)
(epg-new-signature-pubkey-algorithm)
(epg-new-signature-digest-algorithm, epg-new-signature-class)
(epg-new-signature-creation-time, epg-new-signature-fingerprint):
Define using cl-defstruct.
(epg-make-key, epg-key-owner-trust, epg-key-sub-key-list)
(epg-key-user-id-list): Define using cl-defstruct.
(epg-key-set-sub-key-list, epg-key-set-user-id-list): Remove.
Use setf instead.
(epg-make-sub-key, epg-sub-key-validity, epg-sub-key-capability)
(epg-sub-key-secret-p, epg-sub-key-algorithm, epg-sub-key-length)
(epg-sub-key-id, epg-sub-key-creation-time)
(epg-sub-key-expiration-time, epg-sub-key-fingerprint): Define using
cl-defstruct.
(epg-sub-key-set-fingerprint): Remove. Use setf instead.
(epg-make-user-id, epg-user-id-validity, epg-user-id-string)
(epg-user-id-signature-list): Define using cl-defstruct.
(epg-user-id-set-signature-list): Remove. Use setf instead.
(epg-make-key-signature, epg-key-signature-validity)
(epg-key-signature-pubkey-algorithm, epg-key-signature-key-id)
(epg-key-signature-creation-time, epg-key-signature-expiration-time)
(epg-key-signature-user-id, epg-key-signature-class)
(epg-key-signature-exportable-p): Define using cl-defstruct.
(epg-make-sig-notation, epg-sig-notation-name)
(epg-sig-notation-value, epg-sig-notation-human-readable)
(epg-sig-notation-critical): Define using cl-defstruct.
(epg-sig-notation-set-value): Remove. Use setf instead.
(epg-make-import-status, epg-import-status-fingerprint)
(epg-import-status-reason, epg-import-status-new)
(epg-import-status-user-id, epg-import-status-signature)
(epg-import-status-sub-key, epg-import-status-secret): Define using
cl-defstruct.
(epg-make-import-result, epg-import-result-considered)
(epg-import-result-no-user-id, epg-import-result-imported)
(epg-import-result-imported-rsa, epg-import-result-unchanged)
(epg-import-result-new-user-ids, epg-import-result-new-sub-keys)
(epg-import-result-new-signatures, epg-import-result-new-revocations)
(epg-import-result-secret-read, epg-import-result-secret-imported)
(epg-import-result-secret-unchanged, epg-import-result-not-imported)
(epg-import-result-imports): Define using cl-defstruct.
* lisp/emacs-lisp/package.el: Require EPG during macroexpansion.
(package--check-signature, package-import-keyring): Use setf instead of
epg-context-set-home-directory.
Stefan Monnier [Thu, 23 Oct 2014 13:33:25 +0000 (09:33 -0400)]
* lisp/emacs-lisp/bytecomp.el (byte-compile--use-old-handlers): Change default.
Martin Rudalics [Thu, 23 Oct 2014 13:21:07 +0000 (15:21 +0200)]
Fix some doc-strings in frame.c (Bug#18789).
* frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size)
(frame_resize_pixelwise, frame_inhibit_implied_resize): Fix
doc-strings (Bug#18789).
Leo Liu [Thu, 23 Oct 2014 08:07:40 +0000 (16:07 +0800)]
* lisp/progmodes/cfengine.el (cfengine3-defun-full-re): New var.
(cfengine3-create-imenu-index): Use it and use ` ' for separation.
(cfengine3-current-defun): New function.
(cfengine3-mode): Set add-log-current-defun-function.
Paul Eggert [Thu, 23 Oct 2014 06:31:48 +0000 (23:31 -0700)]
* Makefile.in (ACLOCAL_INPUTS): Omit unnecessary use of 'wildcard'.
Paul Eggert [Thu, 23 Oct 2014 03:32:21 +0000 (20:32 -0700)]
Fix race in 'make info/dir', and speed it up.
* Makefile.in (AWK, srcdir_doc_info_dir_inputs, info_dir_inputs):
New macros.
(clean): Remove info-dir.*.
(info_dir_deps): Depend on make-info-dir too.
Fix bug with wildcards that weren't expanded.
(${srcdir}/info/dir): Make sure info directory exists.
Don't call pwd; just redirect make-info-dir's stdout to temp file.
* build-aux/make-info-dir: Send output to stdout.
Take input file names from args.
Fix a "FIXME inefficient looping" by using awk's associative arrays.
Basically, this rewrites the script from scratch, and speeds up
'make info/dir' from 2.6s to 0.07s on my platform.
Stefan Monnier [Thu, 23 Oct 2014 01:38:59 +0000 (21:38 -0400)]
* lisp/select.el: Use lexical-binding.
(gui-set-selection): Provide an implementation for non-GUI frames.
* lisp/term/x-win.el: Use lexical-binding.
(x-clipboard-yank): Fix up missed renamings.
* lisp/term/w32-win.el (libgif-version, libjpeg-version): Silence compiler.
(w32--set-selection): Fix up var names.
* lisp/term/pc-win.el: Use lexical-binding.
(w16-selection-exists-p): Silence compiler warning.
(w16-selection-owner-p): Fix up missed renamings.
* lisp/emacs-lisp/bytecomp.el (byte-compile-form): Remove left-over debug.
* lisp/frame.el (frame-notice-user-settings): Fix excessive quoting.
Fixes: debbugs:18791
Eli Zaretskii [Wed, 22 Oct 2014 16:09:57 +0000 (19:09 +0300)]
Fix bug #18778 with slow redisplay of bracketed L2R text with long lines.
src/bidi.c (bidi_cache_reset_to): New function.
(bidi_cache_reset): Call it.
(bidi_init_it, bidi_line_init): Initialize the bracket_pairing_pos
member to -1.
(bidi_resolve_explicit): Reset bracket_pairing_pos and
bracket_enclosed_type only if bracket_pairing_pos's value is not
ZV.
(MAX_BPA_STACK): Make sure the value is signed.
(PUSH_BPA_STACK): If the BPA stack overflows, don't bail out, but
stop pushing values onto the stack.
(bidi_find_bracket_pairs): If the bracketed text is only on the
base embedding level, remove all the states cached by this
function from the cache, and return zero, so that the brackets in
this segment of text are processed as normal neutrals.
(bidi_resolve_brackets): Detect the brackets that are to be
processed as neutrals, and don't call bidi_find_bracket_pairs on
them.
Tassilo Horn [Wed, 22 Oct 2014 13:30:16 +0000 (15:30 +0200)]
Improve viewing plain text contents of document
* doc/emacs/misc.texi (Document View): Adapt to latest doc-view changes wrt
viewing the document's plain text contents.
* lisp/doc-view.el (doc-view-open-text): View the document's plain text
in the current buffer instead of a new one.
(doc-view-toggle-display): Handle the case where the current
buffer contains the plain text contents of the document.
(doc-view-initiate-display): Don't switch to fallback mode if the
user wants to view the doc's plain text.
(doc-view-set-doc-type): Use assoc-string instead of
assoc-ignore-case.
Martin Rudalics [Wed, 22 Oct 2014 10:01:17 +0000 (12:01 +0200)]
Add two "+++"s to frame section of NEWS.
Martin Rudalics [Wed, 22 Oct 2014 09:57:17 +0000 (11:57 +0200)]
Rewrite "Size and Position" section in frames.texi.
* frames.texi (Size Parameters): Replace "frame contents" by
"frame's text area". Add reference to Size and Position
section.
(Size and Position): Major rewrite. Add explanations for
frame's default font, text and display areas. Add descriptions
for `set-frame-font', `frame-text-height', `frame-text-width'
and `frame-inhibit-implied-resize'.
Stefan Monnier [Tue, 21 Oct 2014 20:11:22 +0000 (16:11 -0400)]
* lisp/mouse.el (mouse-drag-line): Use set-transient-map.
(mouse--down-1-maybe-follows-link): Remove unused var `this-event'.
(mouse-yank-secondary): Use gui-get-selection.
(mouse--down-1-maybe-follows-link): Use read-key.
* lisp/subr.el (read-key): Fix clicks on the mode-line.
(set-transient-map): Return exit function.
* lisp/xt-mouse.el: Add `event-kind' property on the fly from
xterm-mouse-translate-1 rather than statically at the outset.
Fixes: debbugs:18015
Daniel Colascione [Tue, 21 Oct 2014 16:05:13 +0000 (17:05 +0100)]
Stop vc from burying buffers sometimes
* vc/vc-dispatcher.el (vc-resynch-window): Tell view-mode not to
change window configuration when we turn it off.
Stefan Monnier [Tue, 21 Oct 2014 15:27:18 +0000 (11:27 -0400)]
Get rid of backend-dependent selection-handling functions for kill/yank
and make it generic instead by relying on the lower-level selection
management functions.
* select.el (select-enable-clipboard): Rename from
gui-select-enable-clipboard.
(select-enable-primary): Move from x-win.el and rename from
x-select-enable-primary.
(gui-last-selected-text): Remove.
(gui--last-selected-text-clipboard, gui--last-selected-text-primary):
New vars.
(gui-select-text): Rewrite, based on x-win.el's old x-select-text.
(gui-select-text-alist, gui-selection-value-alist): Remove.
(x-select-request-type): Move from x-win.el.
(gui--selection-value-internal): New function, taken from x-win's
x-selection-value-internal.
(gui-selection-value): Rewrite, based on x-win.el's old x-selection-value.
(gui-set-selection-alist): Rename from gui-own-selection-alist and
extend it to handle a nil value as a "disown" request.
(gui-disown-selection-alist): Remove.
(xselect-convert-to-delete): Adjust accordingly.
(gui-set-selection): Simplify accordingly as well. Use dotimes.
* lisp/frame.el (gui-method): Use window-system rather than framep.
(gui-method-declare): The tty case is now nil rather than t.
(make-frame): Adjust accordingly.
* lisp/term/x-win.el (x-last-selected-text-primary)
(x-select-enable-primary): Remove (moved to select.el).
(x-select-request-type): Move to select.el.
(x-selection-value-internal, x--selection-value): Remove functions.
(gui-selection-value, gui-select-text): Remove moethods.
(gui-set-selection): Merge own and disown methods.
* lisp/startup.el (command-line): Adjust now that `gui-method' expects nil
for ttys.
* lisp/term/ns-win.el (ns-get-pasteboard, ns-set-pasteboard)
(ns-selection-value): Remove functions.
(gui-select-text, gui-selection-value): Don't define method any more.
(gui-set-selection): Merge the old own and disown methods.
(gui-selection-exists-p, gui-get-selection): Adjust to new name of
underlying C primitive.
* lisp/term/pc-win.el (w16-get-selection-value): Add dummy argument and drop
test of gui-select-enable-clipboard, to make it usable as
a gui-get-selection method.
(gui-selection-exists-p): Adjust to new name of C primitive.
(gui-set-selection): Merge own and disown methods.
(gui-select-text, gui-selection-value): Delete methods.
(w16--select-text): Delete function.
* lisp/term/w32-win.el (w32--select-text, w32--get-selection-value):
Delete function (move functionality into w32--set-selection and
w32--get-selection).
(gui-select-text, gui-selection-value): Don't define methods.
(w32--set-selection, w32--get-selection, w32--selection-owner-p):
New functions.
(gui-get-selection, gui-selection-owner-p, gui-selection-exists-p):
Use them.
(gui-selection-exists-p): Adjust to new name of C primitive.
* src/nsselect.m (ns_get_local_selection): Signal error rather than `quit'.
(Fns_own_selection_internal): Tighten scoping.
(Fns_selection_exists_p): Rename from Fx_selection_exists_p.
(Fns_get_selection): Rename from Fx_get_selection_internal.
(Fns_get_selection_internal, Fns_store_selection_internal):
Remove functions.
(syms_of_nsselect): Adjust accordingly.
* src/w16select.c (Fw16_selection_exists_p): Rename from
Fx_selection_exists_p.
(syms_of_win16select): Adjust accordingly.
* src/w32select.c (Fw32_selection_exists_p): Rename from
Fx_selection_exists_p.
(syms_of_w32select): Adjust accordingly.
Martin Rudalics [Tue, 21 Oct 2014 06:57:28 +0000 (08:57 +0200)]
Handle wrapped menu bar lines when resizing frames with Windows API.
* w32fns.c (Fw32_frame_menu_bar_size): New function.
* w32term.c (x_set_window_size): Account for wrapped menu bar
lines when setting up frame height (Bug#15174 and Bug#18720).
(w32_add_wrapped_menu_bar_lines): New variable.
Stefan Monnier [Tue, 21 Oct 2014 01:35:30 +0000 (21:35 -0400)]
* lisp/net/newst-reader.el (newsticker--image-read): Simplify.
(newsticker--icon-read): Use dolist and fix free var error.
Stefan Monnier [Tue, 21 Oct 2014 01:33:44 +0000 (21:33 -0400)]
* lisp/imenu.el (imenu--menubar-keymap): New var.
(imenu-add-to-menubar): Set it to remember the keymap we used.
(imenu-update-menubar): Use it instead of asking lookup-key.
Stefan Monnier [Tue, 21 Oct 2014 01:17:06 +0000 (21:17 -0400)]
Merge from emacs-24
Stefan Monnier [Mon, 20 Oct 2014 21:55:12 +0000 (17:55 -0400)]
* lisp/obsolete/cc-compat.el: Make obsolete.
Fixes: debbugs:18561
Stefan Monnier [Mon, 20 Oct 2014 21:51:44 +0000 (17:51 -0400)]
* lisp/epg-config.el (epg-gpg-program): Don't use the absolute names by default.
Stefan Monnier [Mon, 20 Oct 2014 21:48:58 +0000 (17:48 -0400)]
* src/xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
move point.
Glenn Morris [Mon, 20 Oct 2014 19:59:41 +0000 (20:59 +0100)]
Merge from emacs-24; up to 2014-07-28T06:28:15Z!dmantipov@yandex.ru
Ulf Jasper [Mon, 20 Oct 2014 19:47:51 +0000 (21:47 +0200)]
Newsticker: fix broken image download via url-retrieve, again.
* lisp/net/newst-backend.el
(newsticker--image-download-by-url-callback): Make this function
actually work: Check status properly, then save image.
Stefan Monnier [Mon, 20 Oct 2014 19:23:50 +0000 (20:23 +0100)]
Restore temporarily reverted bytecomp change
* lisp/emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg case.
Fixes: debbugs:18767
Glenn Morris [Mon, 20 Oct 2014 19:21:15 +0000 (20:21 +0100)]
Add 24.4 release ChangeLog entries
Tom Tromey [Mon, 20 Oct 2014 19:20:29 +0000 (13:20 -0600)]
* objects.texi (Type Predicates): Don't mention display-table-p.
Glenn Morris [Mon, 20 Oct 2014 19:19:15 +0000 (20:19 +0100)]
Temporarily revert previous bytecomp change
Ulf Jasper [Mon, 20 Oct 2014 18:39:58 +0000 (20:39 +0200)]
Newsticker: fix broken image download via url-retrieve.
* lisp/net/newst-backend.el
(newsticker--image-download-by-url-callback): Make this function
actually work: First save image then check status.
Stefan Monnier [Mon, 20 Oct 2014 16:36:34 +0000 (12:36 -0400)]
* lisp/textmodes/css-mode.el (scss-mode): New major-mode.
(css-mode-syntax-table): Use d style comment, to ease the scss case.
(css-ident-re): Allow things like @-moz-keyframes.
(scss--hash-re): New const.
(css--font-lock-keywords): New function, extracted from
css-font-lock-keywords.
(css-font-lock-keywords): Use it.
(scss-mode-syntax-table, scss-font-lock-keywords): New vars.
(scss-smie--not-interpolation-p): New function.
(css-smie--forward-token, css-smie--backward-token): Use it.
(css-mode): Remove left-over code.
* test/indent/scss-mode.scss: New file.
* test/indent/css-mode.css: Add a few uneventful examples.
Paul Eggert [Mon, 20 Oct 2014 16:00:35 +0000 (09:00 -0700)]
Spelling and grammar fixes in comments.
Stefan Monnier [Mon, 20 Oct 2014 02:36:22 +0000 (22:36 -0400)]
* lisp/emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg
case.
Fixes: debbugs:18767
Jan Djärv [Sun, 19 Oct 2014 20:35:32 +0000 (22:35 +0200)]
Fix spelling error.
* NEWS: Teroffs and detachable tool bar for Gtk+ is gone.
Eli Zaretskii [Sun, 19 Oct 2014 19:13:29 +0000 (22:13 +0300)]
src/ChangeLog: Remove stray duplicate entry.
Jan Djärv [Sun, 19 Oct 2014 17:27:53 +0000 (19:27 +0200)]
* gtkutil.c (create_dialog): Don't use gtk_dialog_get_action_area on
Gt+ >= 3.12, or gtk_misc_set_alignment on Gtk+ >= 3.14.
(make_widget_for_menu_item): Don't use gtk_misc_set_alignment on
Gtk+ >= 3.14 (Bug#18674).
(update_frame_tool_bar): Don't use gtk_misc_set_padding on
Gtk+ >= 3.14 (Bug#18674).
* gtkutil.c (xg_update_menubar, xg_update_menu_item): Only call
g_object_notify for label if Gtk+ >= 2.16 (Bug#16522).
Jan Djärv [Sun, 19 Oct 2014 17:07:54 +0000 (19:07 +0200)]
* src/xterm.c (handle_one_xevent): Check return value from
x_handle_net_wm_state, remove net_wm_state_hidden_seen.
(get_current_wm_state): Remove net_wm_state_hidden_seen setting.
* src/xterm.h (x_output): Remove net_wm_state_hidden_seen.
Fixes: debbugs:18722
Jan Djärv [Sun, 19 Oct 2014 17:07:32 +0000 (19:07 +0200)]
* NEWS: Teroffs and detachable tool bar for Gtk+ is gone.
Ulf Jasper [Sun, 19 Oct 2014 16:50:15 +0000 (18:50 +0200)]
Newsticker: Show feedicons in treeview. Small fix in opml export.
* etc/images/newsticker/README: Add rss-feed.png, rss-feed.svg.
* etc/images/newsticker/rss-feed.png: New.
* etc/images/newsticker/rss-feed.svg: New.
* lisp/net/newst-backend.el: Require url-parse.
(newsticker--get-news-by-wget): Store feed name as process property.
(newsticker--sentinel): Read feed name from process property.
(newsticker--sentinel-work): Rename argument name to feed-name.
Rename variable imageurl to image-url. Pick icon url from Atom
1.0 data. Launch download of feed icon.
(newsticker--get-icon-url-atom-1.0): New.
(newsticker--unxml)
(newsticker--unxml-node)
(newsticker--unxml-attribute): Documentation.
(newsticker--icons-dir): New.
(newsticker--image-get): New arguments FILENAME and DIRECTORY.
Use `url-retrieve' if `newsticker-retrieval-method' is 'intern.
(newsticker--image-download-by-wget): New. Use process properties
for storing informations.
(newsticker--image-sentinel): Read informations from process properties.
(newsticker--image-save)
(newsticker--image-remove)
(newsticker--image-download-by-url)
(newsticker--image-download-by-url-callback): New.
(newsticker-opml-export): Handle url list entries containing a
function instead of an url string.
* lisp/net/newst-reader.el (newsticker-html-renderer): Whitespace.
(newsticker--print-extra-elements)
(newsticker--do-print-extra-element): Documentation
(newsticker--image-read): Optionally limit image height. Use
imagemagick if possible.
(newsticker--icon-read): New.
* lisp/net/newst-treeview.el (newsticker--treeview-item-show): Limit height of feed logo.
(newsticker--treeview-tree-expand): Use feed icons in treeview.
(newsticker--tree-widget-icon-create): New. Set the tree widget icon.
(newsticker--tree-widget-leaf-icon): Use feed icon.
Jan Djärv [Sun, 19 Oct 2014 16:28:49 +0000 (18:28 +0200)]
* gtkutil.c (create_dialog): Don't use gtk_dialog_get_action_area on
Gt+ >= 3.12, or gtk_misc_set_alignment on Gtk+ >= 3.14.
(make_widget_for_menu_item): Don't use gtk_misc_set_alignment on
Gtk+ >= 3.14 (Bug#18674).
(update_frame_tool_bar): Don't use gtk_misc_set_padding on
Gtk+ >= 3.14 (Bug#18674).
Paul Eggert [Sun, 19 Oct 2014 06:33:40 +0000 (23:33 -0700)]
Merge from gnulib.
This incorporates:
2014-10-18 readlinkat: port to AIX 7.1
2014-10-07 fcntl: fix error reporting by dupfd
* lib/fcntl.c, lib/readlinkat.c, lib/unistd.in.h, m4/readlinkat.m4:
* m4/unistd_h.m4: Update from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
Stefan Monnier [Sun, 19 Oct 2014 02:14:58 +0000 (22:14 -0400)]
* lisp/emacs-lisp/eieio: A bit more cleanup, removing compat code.
* lisp/emacs-lisp/eieio-core.el (eieio-compiled-function-arglist): Remove.
(eieio--with-scoped-class): Use `declare'.
(eieio-defclass): Remove compatibility code.
(no-method-definition, no-next-method, inconsistent-class-hierarchy)
(invalid-slot-type, unbound-slot, invalid-slot-name): Use define-error.
* lisp/emacs-lisp/eieio-opt.el (eieio-lambda-arglist): Remove.
Use help-function-arglist instead.
Paul Eggert [Sat, 18 Oct 2014 19:07:17 +0000 (12:07 -0700)]
* gtkutil.c: Remove no-longer-used code.
(xg_update_menubar): Remove unused local and unnecessary call to
gtk_menu_item_get_submenu.
(XG_TOOL_BAR_PROXY_BUTTON, xg_tool_bar_proxy_callback)
(xg_get_tool_bar_widgets, xg_tool_bar_proxy_help_callback)
(TOOLBAR_TOP_WIDGET): Remove; no longer used.
Jan Djärv [Sat, 18 Oct 2014 16:26:47 +0000 (18:26 +0200)]
* cus-start.el (x-gtk-whole-detached-tool-bar): Remove.
Jan Djärv [Sat, 18 Oct 2014 16:25:24 +0000 (18:25 +0200)]
* xfns.c (syms_of_xfns): Remove x-gtk-whole-detached-tool-bar.
Jan Djärv [Sat, 18 Oct 2014 16:19:53 +0000 (18:19 +0200)]
Handle deprecated Gtk+ stuff for version <= 3.10
* lisp/term/x-win.el (x-gtk-stock-map): Add icon names suggested as
replacements to stock names before stock names in a list.
Cdr may be a list, each name is tried in turn until one is found.
* src/gtkutil.c (XG_TEXT_CANCEL, XG_TEXT_OPEN, XG_TEXT_OK): New defines
to handle Gtk versions.
(xg_get_file_with_chooser): Use them.
(xg_have_tear_offs, tearoff_remove, tearoff_activate): Remove
(create_menus): Remove teroff argument and code.
Remove call to gtk_menu_set_title.
(xg_update_menubar, xg_update_submenu): Remove tearoff code. Adjust
args to create_menus.
(xg_tool_bar_menu_proxy, xg_tool_bar_detach_callback)
(xg_tool_bar_attach_callback, TOOLBAR_TOP_WIDGET): Remove.
(xg_pack_tool_bar): Replace TOOLBAR_TOP_WIDGET, remove detach code.
(xg_make_tool_item): Remove detach code.
(xg_update_tool_bar_sizes): Replace TOOLBAR_TOP_WIDGET.
(find_icon_from_name): New function.
(update_frame_tool_bar): Remove GtkStockItem code, move to
find_icon_from_name. Let stock be a list of icon names to try.
Only use gtk_image_new_from_stock on Gtk+ < 3.10.
Replace TOOLBAR_TOP_WIDGET.
(free_frame_tool_bar, xg_change_toolbar_position ): Replace
TOOLBAR_TOP_WIDGET.
(xg_initialize): Remove tearoff code.
* src/gtkutil.h (xg_have_tear_offs): Remove declaration.
* src/xmenu.c (set_frame_menubar): Remove GTK block that calls
xg_have_tear_offs.
* src/xterm.h (handlebox_widget): Remove.
Eli Zaretskii [Sat, 18 Oct 2014 13:09:18 +0000 (16:09 +0300)]
A better fix for drawing hollow cursor on X on 1-pixel thin space characters.
src/xterm.c (x_draw_bar_cursor, x_draw_hollow_cursor): Subtract 1
pixel from the window's cursor glyph width, since X renders hollow
blocks 1 pixel wider than the 'width' parameter.
src/xdisp.c (get_phys_cursor_geometry): Don't subtract 1 pixel from
glyph->pixel_width; this is now done in xterm.c.
Eli Zaretskii [Sat, 18 Oct 2014 12:47:57 +0000 (15:47 +0300)]
Fix bidi reordering of bracket characters in isolates.
src/bidi.c (bidi_cache_find): Rename the argument NEUTRALS_OK to
RESOLVED_ONLY; when non-zero, return from the cache only fully
resolved states. All callers changed.
(CANONICAL_EQU): New macro.
(PUSH_BPA_STACK): Use it to push onto the BPA stack the canonical
equivalent of the paired closing bracket character.
(bidi_find_bracket_pairs): Set the bracket_pairing_pos member to
the default non-negative value, to be checked later in
bidi_resolve_brackets. Use CANONICAL_EQU to test candidate
characters against those pushed onto the BPA stack.
(bidi_record_type_for_neutral): New function.
(bidi_resolve_brackets): Record next_for_neutral and
prev_for_neutral when embedding level gets pushed. Force
resolution of bracket pairs when entering a level run that was not
yet BPA-resolved.
(bidi_resolve_neutral): Add assertions before calling
bidi_resolve_neutral_1.
(bidi_level_of_next_char): Remove the code that attempted to
resolve unresolved neutrals; that is now done by
bidi_resolve_neutral.
Eli Zaretskii [Sat, 18 Oct 2014 11:07:44 +0000 (14:07 +0300)]
Add support for canonically equivalent bracket characters.
Eli Zaretskii [Sat, 18 Oct 2014 10:23:29 +0000 (13:23 +0300)]
Move cache retrieval on forwards scans to bidi_resolve_brackets.
Alan Mackenzie [Sat, 18 Oct 2014 10:02:59 +0000 (10:02 +0000)]
Check that a "macro" found near point-min isn't a ## operator. Fixes
bug #18749.
progmodes/cc-engine.el (c-macro-is-genuine-p): New function.
(c-beginning-of-macro): Use the above new function.
Eli Zaretskii [Sat, 18 Oct 2014 07:10:38 +0000 (10:10 +0300)]
Fix processing of brackets in isolates and crash in w32select.c.
Eli Zaretskii [Sat, 18 Oct 2014 06:40:04 +0000 (09:40 +0300)]
Ensure 8-byte stack alignment in w32select's callback.
src/w32select.c (owner_callback): Mark with ALIGN_STACK attribute.
Ted Zlatanov [Sat, 18 Oct 2014 01:02:30 +0000 (21:02 -0400)]
net/gnutls.el: pass correct data to `gnutls-boot'.
* net/gnutls.el (gnutls-negotiate): Don't use cl-mapcan; pass
correct data to `gnutls-boot'.
Reported by Toke Høiland-Jørgensen <toke@toke.dk>.
Michal Nazarewicz [Sat, 18 Oct 2014 00:23:03 +0000 (20:23 -0400)]
Add a 'big-indent style to `whitespace-mode'.
* lisp/whitespace.el (whitespace-style, whitespace-big-indent)
(whitespace-big-indent-regexp, whitespace-style-value-list)
(whitespace-toggle-option-alist, whitespace-interactive-char)
(whitespace-toggle-options)
(global-whitespace-toggle-options, whitespace-help-text)
(whitespace-style-face-p, whitespace-color-on): Add a 'big-indent
style to `whitespace-mode' to indicate that the line indentation
is too deep. By default, 32 SPACEs or four TABs are considered
too many but `whitespace-big-indent-regexp' can be configured.
Michal Nazarewicz [Sat, 18 Oct 2014 00:22:13 +0000 (20:22 -0400)]
Mention new whitespace-mode option: big-indent.
* etc/NEWS: Mention new whitespace-mode option: big-indent.
Glenn Morris [Fri, 17 Oct 2014 18:05:48 +0000 (14:05 -0400)]
* configure.ac: Simplify OS X $canonical tests.
* etc/NEWS: Clarify OS X entries.
Glenn Morris [Fri, 17 Oct 2014 16:14:37 +0000 (09:14 -0700)]
Merge from emacs-24; up to 2014-07-28T02:47:29Z!fgallina@gnu.org
Glenn Morris [Fri, 17 Oct 2014 16:08:40 +0000 (09:08 -0700)]
Regenerate ldefs-boot
Michal Nazarewicz [Fri, 17 Oct 2014 07:28:25 +0000 (09:28 +0200)]
Fix lisp/ChangeLog entry added in 2014-10-17T07:20:51Z!mina86@mina86.com
Michal Nazarewicz [Fri, 17 Oct 2014 07:20:51 +0000 (09:20 +0200)]
tildify.el (tildify--pick-alist-entry): rename from tildify-mode-alist
tildify-mode-alist does not really describe what the functino does so
rename it to tildify--pick-alist-entry. This also makes it clear that
the function is an internal one.
Eli Zaretskii [Fri, 17 Oct 2014 06:43:36 +0000 (09:43 +0300)]
Fix display on X of 1-pixel R2L characters.
src/xterm.c (x_draw_hollow_cursor): Fix display of hollow cursor on
1-pixel R2L characters.
Reported by Dmitry Antipov <dmantipov@yandex.ru>, see
http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00518.html.
Stefan Monnier [Fri, 17 Oct 2014 05:09:24 +0000 (01:09 -0400)]
* lisp/emacs-lisp/eieio-base.el: Use lexical-binding and cl-lib.
* lisp/emacs-lisp/eieio-core.el: Use lexical-binding and cl-lib.
(list-of): New type.
(eieio--typep): Remove.
(eieio-perform-slot-validation): Use cl-typep instead.
* lisp/emacs-lisp/eieio.el: Use lexical-binding drop non-GV fallback.
(defclass, defgeneric, defmethod): Add doc-string position.
(with-slots): Require cl-lib.
* lisp/emacs-lisp/cl-macs.el (cl--make-type-test): Avoid ((lambda ..) ..).
Glenn Morris [Fri, 17 Oct 2014 04:56:41 +0000 (21:56 -0700)]
Bump version to 24.4
Regenerate ldefs-boot and AUTHORS
Jorge A. Alfaro Murillo [Thu, 16 Oct 2014 22:12:47 +0000 (22:12 +0000)]
lisp/gnus/message.el (message-insert-signature): Make signature respect format=flowed
Sylvain Chouleur [Thu, 16 Oct 2014 22:12:03 +0000 (22:12 +0000)]
lisp/gnus/gnus-icalendar.el: Support vcal format timezones
Alan Mackenzie [Thu, 16 Oct 2014 20:29:44 +0000 (20:29 +0000)]
Trigger showing when point is in the "periphery" of a line or just
inside a paren.
paren.el (show-paren-style, show-paren-delay)
(show-paren-priority, show-paren-ring-bell-on-mismatch): Remove
superfluous :group specifications.
(show-paren-when-point-inside-paren)
(show-paren-when-point-in-periphery): New customizable variables.
(show-paren-highlight-openparen): Make into a defcustom.
(show-paren--unescaped-p, show-paren--categorize-paren)
(show-paren--locate-near-paren): New defuns.
(show-paren--default): Refaactor and trigger on more paren
positions.
(show-paren-function): Small consequential changes.
Tom Tromey [Thu, 16 Oct 2014 19:56:43 +0000 (13:56 -0600)]
* files.el (auto-mode-alist): Use javascript-mode for .jsm
(bug #18719).
Eli Zaretskii [Thu, 16 Oct 2014 16:42:59 +0000 (19:42 +0300)]
Pre-load uni-brackets.el, which is always needed for redisplay.
lisp/international/characters.el (bracket-type): Force pre-loading of
uni-brackets.el.
Eli Zaretskii [Thu, 16 Oct 2014 14:56:57 +0000 (17:56 +0300)]
Fix a typo in a comment.
Eli Zaretskii [Thu, 16 Oct 2014 13:18:00 +0000 (16:18 +0300)]
Cherry-pick a fix from trunk; fix level handling in bidi_resolve_brackets.
Eli Zaretskii [Thu, 16 Oct 2014 06:55:34 +0000 (09:55 +0300)]
src/bidi.c (bidi_find_bracket_pairs): Avoid a loop that does nothing useful.
Glenn Morris [Thu, 16 Oct 2014 01:49:34 +0000 (21:49 -0400)]
Merge from emacs-24; up to 2014-07-27T18:05:37Z!eliz@gnu.org
Glenn Morris [Thu, 16 Oct 2014 01:47:10 +0000 (21:47 -0400)]
Tabify recent ChangeLog change
Lars Magne Ingebrigtsen [Wed, 15 Oct 2014 21:55:10 +0000 (23:55 +0200)]
* NEWS: Mention multipart/related.
Stefan Monnier [Wed, 15 Oct 2014 21:46:47 +0000 (17:46 -0400)]
* lisp/cedet/semantic/wisent/comp.el (wisent-defcontext): Move declarations
outside of eval-when-compile. Use `declare'.
(wisent-with-context): Add `defvar' declarations in case this macro is
used in a file compiled with lexical-binding.
(wisent-semantic-action-expand-body): Avoid add-to-list on local var.
Paul Eggert [Wed, 15 Oct 2014 17:53:04 +0000 (10:53 -0700)]
* bidi.c (bidi_find_bracket_pairs): Initialize local var.
This pacifies GCC 4.9.1 with --enable-gcc-warnings.
It's not clear to me whether the initialization is needed,
but it can't hurt so I played it safe.
Jan Djärv [Wed, 15 Oct 2014 17:42:05 +0000 (19:42 +0200)]
* configure.ac: Move the OSX 10.6 test.
Stefan Monnier [Wed, 15 Oct 2014 17:33:27 +0000 (13:33 -0400)]
* .bzrignore: Add uni-brackets.el.
Stefan Monnier [Wed, 15 Oct 2014 17:32:41 +0000 (13:32 -0400)]
* lisp/emacs-lisp/eldoc.el (global-eldoc-mode): Enable by default.
Remove incorrect handling of eldoc-print-after-edit.
(eldoc-message-commands, eldoc-last-data): Use defvar.
* lisp/loadup.el (emacs-lisp/eldoc): Load it.
* src/lisp.mk (lisp): Add emacs-lisp/eldoc.elc.
Eli Zaretskii [Wed, 15 Oct 2014 15:46:57 +0000 (18:46 +0300)]
src/ChangeLog: Fix a typo.
Stefan Monnier [Wed, 15 Oct 2014 15:28:35 +0000 (11:28 -0400)]
* lisp/progmodes/m4-mode.el (m4-syntax-propertize): New var.
(m4-mode): Use it.
(m4--quoted-p): New function.
(m4-font-lock-keywords): Don't handle #..\n comments any more.
(m4-mode-syntax-table): Use punctuation syntax (according to m4 manual)
for most special characters.
Stefan Monnier [Wed, 15 Oct 2014 15:25:47 +0000 (11:25 -0400)]
* lisp/progmodes/compile.el (compilation--previous-directory): Simplify.
(compilation-next-error): Ensure the parse before we look at
compilation-message property.
Alan Mackenzie [Wed, 15 Oct 2014 15:23:27 +0000 (15:23 +0000)]
cus-edit.el (custom-command-apply): Specify the return value in the doc
string.
(Custom-reset-standard): Save custom-file (e.g. .emacs) only when
custom-command-apply has returned non-nil.
Eli Zaretskii [Wed, 15 Oct 2014 14:11:25 +0000 (17:11 +0300)]
Update the bidirectional reordering engine for Unicode 6.3 and 7.0.
src/bidi.c (bidi_ignore_explicit_marks_for_paragraph_level): Remove
variable.
(bidi_get_type): Return the isolate initiators and terminator
types.
(bidi_isolate_fmt_char, bidi_paired_bracket_type)
(bidi_fetch_char_skip_isolates, find_first_strong_char)
(bidi_find_bracket_pairs, bidi_resolve_brackets): New functions.
(bidi_set_sos_type): Renamed from bidi_set_sor_type and updated
for the new features.
(bidi_push_embedding_level, bidi_pop_embedding_level): Update to
push and pop correctly for isolates.
(bidi_remember_char): Modified to accept an additional argument
and record the bidi type according to its value.
(bidi_cache_iterator_state): Accept an additional argument to only
update an existing state. Handle the new members of struct bidi_it.
(bidi_cache_find): Arguments changed: no lnger accepts a level,
instead accepts a flag telling it whether it is okay to return
unresolved neutrals.
(bidi_initialize): Initiate and staticpro the bracket-type uniprop
table. Initialize new isolate-related members.
(bidi_paragraph_init): Some code factored out into
find_first_strong_char.
(bidi_resolve_explicit_1): Function deleted, its code incorporated
into bidi_resolve_explicit.
(bidi_resolve_explicit): Support the isolate initiators and
terminator. Fix handling of embeddings and overrides according to
new UBA requirements. Record information about previously seen
characters here (moved from bidi_level_of_next_char).
(bidi_resolve_weak): Adapt to changes in struct members.
(FLAG_EMBEDDING_INSIDE, FLAG_OPPOSITE_INSIDE, MAX_BPA_STACK)
(STORE_BRACKET_CHARPOS, PUSH_BPA_STACK): New macros.
(bidi_resolve_neutral): Call bidi_resolve_brackets to handle the
paired bracket resolution. Handle isolate initiators and
terminator.
(bidi_type_of_next_char): Remove unneeded code for BN limit.
(bidi_level_of_next_char): Move the code that records information
about previous characters to bidi_resolve_explicit. Fix logic of
resolving neutrals and make sure their cache entries are updated.
Remove now unneeded special handling of PDF level.
src/dispextern.h (struct glyph): Enlarge the width of resolved_level.
(BIDI_MAXDEPTH): New macro, renamed from BIDI_MAXLEVEL and
enlarged per Unicode 6.3.
(enum bidi_bracket_type_t): New data type.
(struct bidi_saved_info): Leave only 2 type members out of 4.
Remove bytepos.
(struct bidi_stack): Add members necessary to support isolating
sequences.
(struct bidi_it): Add new members necessary to support isolating
sequences and bracket pair resolution.
src/xdisp.c (Fbidi_resolved_levels): New function.
(syms_of_xdisp): Defsubr it.
(append_glyph, append_composite_glyph, produce_image_glyph)
(append_stretch_glyph, append_glyphless_glyph): Convert aborts to
assertions.
(syms_of_xdisp) <inhibit-bidi-mirroring>: New variable.
src/term.c (append_glyph, append_composite_glyph)
(append_glyphless_glyph): Convert aborts to assertions.
src/.gdbinit (pgx): Display the character codepoint, resolved level,
and bidi type also for glyphless glyphs.
lisp/simple.el (what-cursor-position): Update to support the new bidi
characters.
lisp/descr-text.el (describe-char): Update to support the new bidi
characters.
admin/unidata/unidata-gen.el (unidata-prop-alist): New properties
'paired-bracket' and 'bracket-type', in support of the UBA 6.3.
(unidata-gen-table): Support PROP-IDX being a function.
(unidata-describe-bidi-bracket-type, unidata-gen-brackets-list)
(unidata-gen-bracket-type-list): New functions.
(unidata-check): Support checking the 'bracket-type' attribute.
(unidata-gen-files): Don't create backups for uni-*.el files.
admin/unidata/Makefile.in (${unidir}/charprop.el): Depend on
BidiMirroring.txt and BidiBrackets.txt.
admin/unidata/BidiBrackets.txt: New file, from Unicode.
etc/NEWS: Mention the UBA implementation update.
etc/HELLO: Remove now unneeded directional control characters.
doc/lispref/nonascii.texi (Character Properties): Document the new
properties 'bracket-type' and 'paired-bracket'.
doc/lisprefdisplay.texi (Bidirectional Display): Update the version of the
UBA to which we are conforming.
test/BidiCharacterTest.txt: New file, from Unicode.
test/biditest.el: New file.
Dmitry Antipov [Wed, 15 Oct 2014 13:37:10 +0000 (17:37 +0400)]
Avoid unwanted point motion in Fline_beginning_position.
* lisp.h (scan_newline_from_point): Add prototype.
* search.c (scan_newline_from_point): New function, refactored from...
* cmds.c (Fforward_line): ...adjusted user.
* editfns.c (Fline_beginning_position): Use scan_newline_from_point
and simplify the former since the latter doesn't move point.
Eli Zaretskii [Wed, 15 Oct 2014 13:16:10 +0000 (16:16 +0300)]
Merge from trunk.
Eli Zaretskii [Wed, 15 Oct 2014 12:23:59 +0000 (15:23 +0300)]
Fix initialization of flags when pushing BPA stack.
Eli Zaretskii [Wed, 15 Oct 2014 10:22:15 +0000 (13:22 +0300)]
Rewrote bracket resolution to match subtleties of Reference Implementation.
Glenn Morris [Wed, 15 Oct 2014 07:22:14 +0000 (00:22 -0700)]
Rewrite ChangeLog release notes to be less confusing
Glenn Morris [Wed, 15 Oct 2014 07:19:22 +0000 (00:19 -0700)]
* nextstep/README: Move most contents into INSTALL.
Remove license notice from file, since it is now trivial.
Glenn Morris [Wed, 15 Oct 2014 07:12:31 +0000 (00:12 -0700)]
* admin/notes/versioning: Relocate and rewrite.
Glenn Morris [Wed, 15 Oct 2014 07:07:29 +0000 (00:07 -0700)]
Remove some admin/notes files
* admin/notes/lel-TODO: Remove. This has not turned out to be a
useful way to get things documented.
* admin/notes/exit-value, admin/notes/iftc: Remove.
These don't seem to have any particular relationship to Emacs development.
Glenn Morris [Wed, 15 Oct 2014 07:03:28 +0000 (00:03 -0700)]
* README: Remove some unnecessary detail.
Glenn Morris [Wed, 15 Oct 2014 07:02:43 +0000 (00:02 -0700)]
* INSTALL: Remove the "by hand" sections.
No-one needs to know those details, and this file is too long already.